#include <cmath>
#include "MathUtil.h"
#include "Vector3.h"

const Vector3 kZeroVector(0.0f, 0.0f, 0.0f);

// ---------------------------------------------------------------------

//通过适当的2pi倍数将角度限制在-pi和pi的区间内
float wrapPi(float theta)
{
    theta += kPi;
    theta -= floor(theta * k1Over2Pi) * k2Pi;
    theta -= kPi;
    return theta;
}

// ---------------------------------------------------------------------

//安全的反三角函数
float safeAcos(float x)
{
    //检查边界条件
    if (x <= -1.0f)
        return kPi;
    
    if (x >= 1.0f)
        return 0.0f;

    return acos(x);
}